package com.qhong.aspect;

import com.qhong.exception.AuthException;
import com.qhong.modules.response.R;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.web.bind.annotation.ControllerAdvice;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.ResponseBody;

/**
 * Created by qhong on 2018/6/5 15:40
 **/
@ControllerAdvice
public class GlobalExceptionHandler {

	private Logger logger = LoggerFactory.getLogger(getClass());

	/**
	 * 处理自定义异常
	 */
	@ExceptionHandler(AuthException.class)
	@ResponseBody
	public R handleRRException(AuthException e){
		R r = new R();
		r.put("code", e.getCode());
		r.put("msg", e.getMessage());
		return r;
	}
//
//	@ExceptionHandler(NoHandlerFoundException.class)
//	@ResponseBody
//	public R handlerNoFoundException(Exception e) {
//		logger.error(e.getMessage(), e);
//		return R.error(404, "路径不存在，请检查路径是否正确");
//	}
//
//	@ExceptionHandler(DuplicateKeyException.class)
//	@ResponseBody
//	public R handleDuplicateKeyException(DuplicateKeyException e){
//		logger.error(e.getMessage(), e);
//		return R.error("数据库中已存在该记录");
//	}
//
//	@ExceptionHandler(AuthorizationException.class)
//	@ResponseBody
//	public R handleAuthorizationException(AuthorizationException e){
//		logger.error(e.getMessage(), e);
//		return R.error("没有权限，请联系管理员授权");
//	}

	@ExceptionHandler(Exception.class)
	@ResponseBody
	public R handleException(Exception e) {
		logger.error(e.getMessage(), e);
		return R.error();
	}

//	@ExceptionHandler(value = Exception.class)
//	@ResponseBody
//	public R jsonErrorHandler(HttpServletRequest req, Exception e) throws Exception {
//	    return R.error(e.getMessage());
//	}
}